【(一)OpenGL入门】1.vs2022环境搭建及Hello窗口 您所在的位置:网站首页 一使用imguiwin32+opengl+imgui 【(一)OpenGL入门】1.vs2022环境搭建及Hello窗口

【(一)OpenGL入门】1.vs2022环境搭建及Hello窗口

2024-06-02 16:28| 来源: 网络整理| 查看: 265

目录

 1.环境搭建

1-1.下载GLFW

1-2.安装Cmake

1-3使用Cmake设置读取GLFW生成vs2022工程

1-4使用vs2022编译GLFW源码生成库文件

 1-5 配置GLAD

 2.Hello窗口

 1.环境搭建

自行安装vs2022/vs2019。

1-1.下载GLFW

GLFW是opengl的C库,需要使用该库进行编程。推荐下载GLFW源码包在vs2022中使用cmake工具进行编译,这样可以编译出适合自己操作系统和编译环境的GLFW库文件。

可在官网下载GLFW源码:Download | GLFW

1-2.安装Cmake

上面说到,要编译GLFW源码就得用到cmake工程管理工具,类似于linux环境下的makefile,有了它才能按照某种规则顺利编译源码。

在官网下载:Download | CMake

这里推荐下载.msi后缀文件,可以以GUI界面方式安装在电脑上。

安装好后桌面显示cmake图标。

1-3使用Cmake设置读取GLFW生成vs2022工程

使用vs2022编译代码得需要.sln工程,所以就需要先使用Cmake设置GLFW使其生成可以用vs2022打开的工程文件。

(1)解压glfw-3.3.8.zip到任意路径下,这里我放在自己创建的路径OpenGL_lib目录下。在glfw-3.3.8目录下创建一个文件夹build,用来存放配置生成的工程文件.sln。然后启动Cmake,按照如下图方式配置。

(2)出现下面打印信息就说明Cmake已经配置好了vs2022工程。从打印信息中可知该工程是根据自己的操作系统环境生成的。

1-4使用vs2022编译GLFW源码生成库文件

(1)在build目录下打开vs工程。

(2)点击生成解决方案。生成glfw3.lib,glfw帮助我们建立窗口,定义上下文、处理用户输入。

 (3)新建一个GLFW_LIB目录,在该目录下再创建include和lib目录。将glfw-3.3.8/include/GLFW/下的.h文件和glfw-3.3.8/build/src/Debug下的.lib文件分别拷贝到我们创建的include和lib目录下。

(4)打开vs2022,创建空的c++项目(非控制台项目);在解决方案栏右击选择属性->打开VC++目录->添加库路径:

 

添加头文件路径和上面方法一样,如此就可以使用include 了。

(5)然后来链接库,添加依赖:注意:opengl32.lib是安装vs2022时默认安装的。

(6)最后写个程序测试一下环境。

 1-5 配置GLAD

安装编译glad,glad作用是为了把函数指针和显卡驱动里面的函数建立联系,因为各显卡厂商对于OpenGL标准的理解不同,写出来的驱动也不同。简单来说就是为了让我们的代码能在不同显卡厂家的设备上运行。glad只需要一行代码就可以解决本地函数指针到显卡驱动函数的映射。

(1)打开GLAD在线服务,按照下图选择,生成我们需要的版本包。

GLAD在线服务:https://glad.dav1d.de/

(2)下载.zip文件并解压。

(3)把include目录下的两个目录中的.h文件复制到之前的include文件中。

 

 (4)添加GLAD/src/下的glad.c文件到你的工程中,修改这两处头文件,具体得根据你的include目录,如果你的include目录下还有文件夹,那就得用人家源码的写法,我的.h直接复制到include目录中所以这样改。

 

 

(5)以上工作准备就绪后注释掉这行代码,否则编译报错。

 (6)写一段小程序测试环境搭建是否成功。

 2.Hello窗口

 之前搭建好的工程可以拷贝为以后编程使用,这里直接在之前环境搭建的工程上编程。

opengl.cpp

#include //glad.h需要在glfw.h之前 #include #include void framebuffer_size_callback(GLFWwindow* window, int width, int height); void processInput(GLFWwindow* window); int main() { //初始化glfw:选择opengl 3.3~4.2核心模式,取决于你的显卡驱动 glfwInit(); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); #ifdef __APPLE__ //如果是苹果操作系统 glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); #endif GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL); //创建窗体对象:参数1:opengl窗口大小;参数2:窗口标题 if (window == NULL) { std::cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有